
Private Sub SuperDeconvolution4(ByVal FirstBin As Int32, _
                                    ByVal LastBin As Int32, _
                                    ByVal ArraySource() As Single, _
                                    ByRef ArrayDest() As Single, _
                                    ByRef MaxBinValue As Single, _
                                    ByRef BinWithMaxValue As Int32)

        ' ---------------------------------------------------------------------
        '  SUPER DE-CONVOLUTION - TYPE 4 - indefinite number of peaks
        '----------------------------------------------------------------------

        ' C0 C1 C2 C3
        ' -------------
        ' 00 01 02 03 | R 0
        ' 10 11 12 13 | R 1
        ' 20 21 22 23 | R 2
        ' 30 31 32 33 | R 3 

        Dim nr As Int32 = SelectedIsotopes.Length
        If nr > 0 Then
            Dim E(nr - 1) As Single
            For i As Int32 = 0 To nr - 1
                E(i) = SelectedIsotopes(i).Energy
            Next

            Dim N(nr - 1) As Single
            For k As Int32 = 0 To nr - 1
                N(k) = ArrayDest(EnergyToBin(E(k)))
                IsotopeData(k) = N(k)
            Next

            ' ----------------------------------------------------- deconvolution verify
            'For i As Int32 = FirstBin To LastBin
            '    Dim Eii As Single = BinToEnergy(i)
            '    Dim Na As Single = 0
            '    For a As Int32 = 0 To nr - 1
            '        Dim expa As Single = CSng(Math.Exp((-(Eii - E(a)) ^ 2) / (2 * sigma ^ 2)))
            '        Na = Na + N(a) / Q * expa
            '    Next
            '    ArrayDest(i) = Na
            'Next

            ' ----------------------------------------------------- rabbit extension 
            Dim Ei As Single
            Dim Nac As Single
            Dim sigmac As Single = mGaussianSize + 0.5F ' KeV
            Dim Qc As Single = CSng(Math.Sqrt(2.0 * Math.PI * sigmac ^ 2.0))
            For i As Int32 = FirstBin To LastBin
                Ei = BinToEnergy(i)
                Nac = 0
                For a As Int32 = 0 To nr - 1
                    Dim expa As Single = CSng(Math.Exp((-(Ei - E(a)) ^ 2) / (2 * sigmac ^ 2)))
                    Nac = Nac + N(a) / Qc * expa
                Next
                ArrayDest(i) = Nac
            Next
        End If
    End Sub